Today, many of the video processing systems follow a standard architecture that typically include a sever that receives a video stream, processes the video stream, and then transmits the processed video stream, via a network, to a remote client.
It may be advantageous for computational reasons and for increasing performance to use processing power of both the server and the remote client.
Some of the processing relate to processing made by a graphical processing unit (GPU). The GPU creates images intended for output to a display. The GPU may also be adapted to manipulate images in a video stream. In a server-client system, it may be advantageous to be able to use the GPU both on the server and on the client for performing graphical processing.
US 2013/0016107 (CiiNow Inc.) relates to a method for rendering graphics that can utilize both server-side rendering and client-side rendering. The main idea in this document is to decide if the rendering should be made on the server or on the client. If the rendering is made on the server, video data (i.e. pixel data) is sent from the server to the client and then displayed. If the rendering is made on the client, graphics data (i.e. vector data) is sent to the client and then rendered into video data using the GPU of the client. The choice is made based on the available processing power of the GPU in the client and in the server and based on the network bandwidth.
The method of US 2013/0016107 may be advantageous in application where graphics data is processed and rendered into video data, e.g. computer games. Different approaches are needed in order to process video data both on the server and on the client, for example by applying shaders for special effects and video post processing.